package com.gitee.gen.controller;

import cn.shoukaiseki.reddragon.common.domain.BaseSO;
import cn.shoukaiseki.reddragon.common.domain.PageResult;
import com.jn.langx.util.pagination.PagingResult;
import com.jn.sqlhelper.dialect.pagination.PagingRequest;
import com.jn.sqlhelper.dialect.pagination.PagingRequestContextHolder;
import com.jn.sqlhelper.dialect.pagination.SqlPaginations;
import com.mybatisflex.core.paginate.Page;
import org.noear.solon.Solon;
import org.noear.solon.core.handle.Context;
import org.smartboot.http.server.impl.HttpRequestImpl;

import java.util.Map;

public class BaseController {


    /**
     * 设置请求分页数据,该分页插件不支持 mybatis-flex
     */
    protected PagingRequest startPage(BaseSO param)
    {
        param.initialize();
        int pageNum = param.getPageNum();
        int pageSize=param.getPageSize();
        PagingRequest pageRequest = SqlPaginations.preparePagination(pageNum,pageSize);
        return pageRequest;
    }

    /**
     * sqlpagination 分页后的结果获取
     */
    protected PagingResult pagingResult(){
        PagingRequest pagingRequest = PagingRequestContextHolder.getContext().getPagingRequest();
        return pagingRequest.getResult();
    }

    protected PageResult convertPageResult(Page<?> page){
        return PageResult.of(page.getRecords())
                .setTotal(page.getTotalRow())
                .setPageNum(page.getPageNumber())
                .setPageSize(page.getPageSize());
    }

}
